System and method for improved camera flash

ABSTRACT

Methods, systems, computer-readable media, and apparatuses for improved camera flash are presented. In some embodiments, a method includes performing an autofocus technique on a scene to obtain an autofocus output. The method also includes obtaining an ambient light measurement of the scene. The method further includes adjusting a sensitivity of an image sensor based at least in part on the autofocus output and the ambient light measurement. The method additionally includes, after adjusting the light sensitivity of the image sensor, illuminating the scene using a pre-flash.

BACKGROUND

Many mobile devices (e.g., smartphones, tablets, etc.) have become theprimary photo-capturing devices for many users. These mobile devicesoften include a flash device to properly illuminate a capture a scene.However, flash devices often consume a significant amount of power onmobile devices. For example, a typical flash may use 1 amp of currentacross 2-3 frames. Further, the flash intensity is constant whilecapturing the image, irrespective of the amount of ambient lightavailable at the time. That is, traditional pre-flash meteringtechniques use a constant flash intensity to expose the image and onlycontrol the duration of the flash adjust the scene illumination.

Additionally, traditional pre-flash techniques are slow. For example, intypical flash metering, a pre-flash generally takes 4 to 10 frames forconvergence. The length of the pre-flash can depend on various factorssuch as the scene distance and the amount of ambient light. The slowpre-flash increases the flash snapshot latency.

The embodiments described herein solve these problems, both individuallyand collectively.

BRIEF SUMMARY

Certain embodiments are described that improve camera flash techniques.

In some embodiments, a method may include performing an autofocustechnique on a scene to obtain an autofocus output. The method may alsoinclude receiving light from a scene. The method may also includeobtaining an ambient light measurement of the scene based on thereceived light. The method may further include adjusting a sensitivityof an image sensor based at least in part on the autofocus output andthe ambient light measurement. The method may additionally include,after adjusting the light sensitivity of the image sensor, illuminatingthe scene using a pre-flash.

In some embodiments, the autofocus output may include an autofocusconfidence value and a focus position pertaining to the scene.

In some embodiments, the method may also include determining whether theautofocus confidence value is above a threshold confidence value. Themethod may further include obtaining a focus position value from alook-up table (LUT), based at least in part on the focus position.

In some embodiments, the method may also include determining whether theautofocus confidence value is below a threshold confidence value. Themethod may further include, in response to determining that theautofocus confidence value is below the threshold confidence value, notperforming the adjusting step.

In some embodiments, the autofocus output comprises a focus positionpertaining to the scene.

In some embodiments, the image sensor may be housed within a cameradevice.

In some embodiments, the autofocus technique may include at least one ofthe following autofocus techniques: laser autofocus, phase detectionautofocus, or contrast autofocus.

In some embodiments, the method may also include, after illuminating thescene using the pre-flash, capturing an image of the scene.

In some embodiments, a system may include a lens, a light source, animage sensor coupled to a processor, and an ambient light sensor coupledto the processor. The ambient light sensor may be configured to receivelight from a scene. The processor may be configured to perform, via thelens, an autofocus technique on the scene to obtain an autofocus output.The processor may be further configured to obtain, via the ambient lightsensor, an ambient light measurement of the scene based on the receivedlight. The processor may be further configured to adjust a sensitivityof the image sensor based at least in part on the autofocus output andthe ambient light measurement. The processor may be further configuredto, after adjusting the light sensitivity of the image sensor,illuminate the scene using a pre-flash via the light source.

In some embodiments, an apparatus may include means for performing anautofocus technique on a scene to obtain an autofocus output. Theapparatus may also include means for receiving light from the scene. Theapparatus may also include means for obtaining an ambient lightmeasurement of the scene based on the received light. The apparatus mayfurther include means for adjusting a sensitivity of an image sensorbased at least in part on the autofocus output and the ambient lightmeasurement. The apparatus may additionally include means for, afteradjusting the light sensitivity of the image sensor, illuminating thescene using a pre-flash.

In some embodiments, one or more non-transitory computer-readable mediamay store computer-executable instructions that, when executed, causeone or more computing devices to perform an autofocus technique on ascene to obtain an autofocus output, receive light from a scene, obtainan ambient light measurement of the scene based on the received light,adjust a sensitivity of an image sensor based at least in part on theautofocus output and the ambient light measurement, and after adjustingthe light sensitivity of the image sensor, illuminate the scene using apre-flash.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the disclosure are illustrated by way of example. In theaccompanying figures, like reference numbers indicate similar elements.

FIG. 1 illustrates a simplified diagram of a device 100 that mayincorporate one or more embodiments;

FIG. 2 is a block diagram of a scene and various components of device;

FIG. 3 is a flowchart illustrating a method for adjusting main-flashintensity prior to capturing an image of a scene;

FIG. 4 is a flowchart illustrating a method for adjusting an imagesensor sensitivity prior to illuminating a pre-flash; and

FIG. 5 illustrates an example of a computing system in which one or moreembodiments may be implemented.

DETAILED DESCRIPTION

Several illustrative embodiments will now be described with respect tothe accompanying drawings, which form a part hereof. While particularembodiments, in which one or more aspects of the disclosure may beimplemented, are described below, other embodiments may be used andvarious modifications may be made without departing from the scope ofthe disclosure or the spirit of the appended claims.

Camera flash devices can be improved and optimized a few different ways.First, a pre-flash metering technique can be used to determine theintensity required by the main flash and the main flash can beilluminated at an intensity level based on the determination. Forexample, the main flash can be illuminated at a low, medium, or highflash intensity based on the amount of light deemed to be required bythe pre-flash metering. Different exposure sensitivity thresholds may beconfigurable for the different flash intensities (e.g., low, medium, andhigh flash intensities). For example, if a scene is determined to havesufficient brightness, a low flash intensity may be use to capture thescene. This may be done without reconfiguring the flash (described infurther detail below. In another example, if a scene is far and dark,the flash may be reconfigured to have a medium or high flash intensitybased on the pre-flash metering.

Second, in a scenario where the pre-flash metering determines that thescene requires only a low level of flash illumination, the lightilluminated from the pre-flash may be used to expose the scene. Forexample, the illumination intensity of the pre-flash may already be atthe “low” level of flash intensity, and thus the pre-flash may remainactive when it is determined that the scene only requires a “low” levelof flash intensity for proper exposure. Accordingly, by leaving thepre-flash on, power savings can be realized since the pre-flash does notneed to be turned off prior to activating the main flash, as is usuallyrequired. Additionally, by leaving the pre-flash on, latency ofcapturing an image may also be improved.

Third, the image sensor sensitivity of the camera can be adjusted priorto the pre-flash by using the ambient light sensor and a distanceestimate obtained from autofocus (AF) techniques (e.g., laser AF, phasedetection AF, contrast AF, etc.). For example, if the AF confidencevalue is high, the image sensor sensitivity can be adjusted based on (1)a look-up-table (LUT) defining sensitivities for various focus positions(i.e., distance to object) in the scene and (2) data from the ambientlight sensor. By “pre-adjusting” the image sensor sensitivity prior tothe pre-flash, the time for pre-flash convergence may be reduced andoverall flash time for all scenes may also be reduced, resulting inpower savings on the device and improving a latency in capturing animage.

FIG. 1 illustrates a simplified diagram of a device 100 that mayincorporate one or more embodiments. Device 100 may include a processor110, microphone 120, display 130, input device 140, speaker 150, memory160, ambient light sensor 170, camera 180, and computer-readable medium190.

Processor 110 may be any general-purpose processor operable to carry outinstructions on the device 100. The processor 110 is coupled to otherunits of the device 100 including microphone 120, display 130, inputdevice 140, speaker 150, memory 160, camera 180, and computer-readablemedium 190.

Microphone 120 may be any device that converts a sound input to anelectrical signal. The microphone 120 may capture a user's voice or anyother sound in a proximity to the device 100.

Display 130 may be any device that displays information to a user.Examples may include an LCD screen, CRT monitor, or seven-segmentdisplay. In some embodiments, display 130 may be a touchscreen displaycapable of receiving input for interaction with a camera applicationexecuting on the device 100.

Input device 140 may be any device that accepts input from a user.Examples may include a keyboard, keypad, mouse, or touch input. In someembodiments, display 130 may also function as input device 140.

Speaker 150 may be any device that outputs sound to a user. Examples mayinclude a built-in speaker or any other device that produces sound inresponse to an electrical audio signal.

Memory 160 may be any magnetic, electronic, or optical memory. Anexample of memory 160 may be dynamic random access memory (DRAM).

Ambient light sensor 170 may be configured to detect light or brightnessin a similar way as the human eye. The ambient light sensor 170 may be aspecific version of a photodiode, capable of converting light into avoltage or current. The ambient light sensor 170 may have a typicalspectral response ranging from 350 nm to 1100 nm. As such, the ambientlight sensor 170 can detect the amount of received ambient light withinan environment in which the device 100 is present.

Light source 175 may be any light source usable for flash photography toilluminate a scene. Light source 175 may produce a flash of artificiallight (typically 1/1000 to 1/200 of a second) at a color temperature ofabout 5500 Kelvin. In some implementations, the flash of artificiallight may remain on for a maximum time period dependent on the specifichardware implementation or may remain on continuously in a low intensityoperation. A Correlated Color temperature (CCT) may be fixed for singleLED source and its value may depend on the specific hardware, whereas aDual Tone LED may be able to produce the multiple CCTs which may becontrolled by an algorithm. As shown, light source 175 may be containedwithin the device 100. In some embodiments, light source 175 may beexternal to the device 100 and be communicatively coupled to device 100(e.g., light source 175 may be mounted via a standardized “accessorymount” bracket to the device 100). The light source 175 may providelight for either a pre-flash or main flash, or both. Before the actualexposure one or more small flashes, called “pre-flashes”, may beemitted. The light returning through the lens may be measured and thisvalue may be used to calculate the amount of light necessary for theactual exposure. Multiple pre-flashes can be used to improve the flashoutput. Once the amount of light necessary for the actual exposure isdetermined, the scene may be properly exposed using a main flash toilluminate the scene.

Camera 180 may be configured to capture one or more images via a lens182 located on the body of device 100. The lens 182 may be a part of thecamera 180 subsystem. The captured images may be still images or videoimages. The camera 180 may include a CMOS image sensor to capture theimages. Various applications running on processor 110 may have access tocamera 180 to capture images. It can be appreciated that camera 180 cancontinuously capture images without the images actually being storedwithin device 100. Captured images may also be referred to as imageframes.

Camera 180 may also include image sensor 184. Image sensor 184 may be asensor that detects and conveys information that constitutes an image.It may do so by converting the variable attenuation of light waves (asthey pass through or reflect off objects) into signals, small bursts ofcurrent that convey the information. The waves can be light or otherelectromagnetic radiation. Image sensors are used in electronic imagingdevices of both analog and digital types. For example, when open, lens182 may allow light to shine through to the image sensor 184. Imagesensor 184 may capture the light through the lens 182 and convert thelight to an electronic signal that represents the image.

Computer-readable medium 190 may be any magnetic, electronic, optical,or other computer-readable storage medium. Computer-readable storagemedium 190 may store computer-readable code comprising code subsystems,including autofocus subsystem 192, ambient light measurement subsystem194, and flash subsystem 196.

Autofocus (AF) subsystem 192 contains code that, when executed byprocessor 110, may perform an autofocus technique on a scene visiblethrough the camera 180. The autofocus subsystem 192 may rely on one ormore sensors to determine the correct focus for a given scene. In someembodiments, the autofocus subsystem 192 may rely on a single sensor,while others use an array of sensors. In some embodiments, the AFsubsystem 192 may use through-the-lens optical AF sensors, with aseparate sensor array providing light metering. The AF subsystem 192 mayuse active, passive, or hybrid AF techniques. In some embodiments, theAF subsystem 192, in performing an autofocus technique, may obtain an AFconfidence value indicating the confidence of the focus position withinthe scene.

Ambient light measurement subsystem 194 contains code that, whenexecuted by processor 110, may analyze an ambient light measurementobtained by the ambient light sensor 170. It can be appreciated thatambient light measurement subsystem 194 can include logic to controlambient light sensor 170. For example, ambient light sensor 170 mayobtain an ambient light measurement upon instruction to do so fromambient light measurement subsystem 194. Ambient light measurementsubsystem 194 may also further analyze the obtained ambient lightmeasurement from ambient light sensor 170. For example, ambient lightmeasurement subsystem 194 may obtained an ambient light measurement andrelay results to the flash subsystem 196 (described below). In someembodiments, the ambient light measurement subsystem 194 may instructthe ambient light sensor 170 to obtain an ambient light measurement atpredetermined intervals, e.g. every 10 seconds.

Flash subsystem 196 contains code that, when executed by processor 110,may configure parameters associated with image sensor 184 and lightsource 175 prior to emitting a flash for capturing an image. Forexample, flash subsystem 196 may adjust the intensity required by themain flash, by adjusting the intensity of light source 175, based on apre-flash metering technique and the main flash can be illuminated at anintensity level based on measurements obtained from the pre-flashmetering technique.

In another example, the flash subsystem 196 may adjust light source 175to illuminate at a low level intensity if a pre-flash metering techniquedetermines that the scene requires only a low level of main flashillumination to be properly exposed. In other words, the lightilluminated from the pre-flash may also function as the main flash andmay be used to expose the scene. The pre-flash may remain active when itis determined that the scene only requires a “low” level of flashintensity for proper exposure, instead of being turned off prior toactivating the main flash.

In another example, the flash subsystem 196 may adjust a sensitivity ofimage sensor 184 prior to the pre-flash based on measurements obtainedfrom the ambient light measurement subsystem 194 and a distance estimateto a focal point within the scene obtained from autofocus subsystem 192.An example of a sensitivity setting for the image sensor 184 may includeISO setting and exposure time.

FIG. 2 is a block diagram of a scene 200 and various components ofdevice 100. In the illustrated embodiment, the scene 200 may includeincident light 210 that passes through lens 182. The image sensor 184may be coupled with the lens 182 to receive the focused incident lightand in response produce a digital image thereof. A processor 110 may becoupled to the image sensor 184 to control the image sensor 184. Theprocessor 110 may also be coupled to light source 175 and ambient lightsensor 170. The processor 110 may comprise any suitable embeddedmicroprocessor or state machine that can manage overall operations ofthe device 100. For example, the device 100 may be a “thin” device withminimal functionality (such as a personal computer peripheral “Web”camera). Alternatively, the camera may be embedded in a smart phonehandset, in which case the processor 110 could be an embeddedapplications processor in the handset. As described above, the lightsource 175 may function to illuminate the scene 200 for proper exposure.Ambient light sensor may obtain an ambient light measurement of thescene 200 to be used for adjusting the image sensor 184 prior totriggering a pre-flash or main flash from light source 175.

FIG. 3 is a flowchart 300 illustrating a method for adjusting pre-flashintensity prior to capturing an image of a scene. The method begins atblock 310. At block 320, prior to capturing an image of a scene, thescene is briefly illuminated with a pre-flash at a low intensity oflight. For example, the scene may be illuminated using the light source175 where flash subsystem 196 has configured light source 175 to outputat a low intensity. In some embodiments, the low intensity pre-flash maybe at an intensity of around ⅕th of a typical main flash intensity(e.g., the light used to properly expose the scene when capturing theimage).

At block 320, after illuminating the scene using the pre-flash at thelow-intensity, the device may take exposure measurements of the scenewhile the scene is being illuminated by the pre-flash at the lowintensity. During the pre-flash, the processor may adjust or converge tothe exposure sensitivity to obtain a proper luminance within the scene.The exposure measurements may be taken by the device through the lens182 of camera 180. The exposure measurements may include, but is notlimited to, shutter speed, lens aperture and scene luminance. Exposuremay be measured in lux seconds, and can be computed from exposure value(EV) (e.g., ISO Speed and exposure time) and scene luminance in aspecified region within the scene. For example, a low exposure value(ISO and exposure time) may indicate that the scene is bright and viceversa. The processor 110 may then determine whether the exposuremeasurements (e.g., EV) of the scene during the pre-flash at the lowintensity falls below a “low threshold.” The “low threshold” may be aconfigurable threshold. For example, the processor 110 may determinewhether the exposure of the scene measured in EV during the pre-flash atthe low intensity falls below a specified low threshold. If the exposuremeasurements of the scene during the pre-flash at the low intensityfalls below the “low threshold,” the process may continue to block 350.Otherwise, if the exposure measurements of the scene during thepre-flash at the low intensity does not fall below the “low threshold,”the process may continue to block 340.

At block 340, after the processor 110 determines whether the exposuremeasurements of the scene during the pre-flash at the low intensityfalls below the “low threshold,” and if the processor 110 determinesthat the exposure measurements of the scene during the pre-flash at thelow intensity falls below the “low threshold,” the processor 110 maydetermine whether the exposure measurements of the scene during thepre-flash at the low intensity falls below a “mid threshold.” The “midthreshold” may have a threshold exposure value that is higher than the“low threshold.” The exposure measurements of the scene during thepre-flash at the low intensity falling below the “low threshold” mayindicate that the scene may be underexposed if the image is capturedusing a main flash at a low intensity (e.g., the same light intensity asthe pre-flash in block 320). Accordingly, the main flash may need to beoutput at a mid-intensity level or full intensity level in order toproperly expose the scene. At block 340, the processor 110 may determinewhether the exposure measurements of the scene during the pre-flash atthe low intensity falls below a “mid threshold.” If the exposuremeasurements of the scene during the pre-flash at the low intensitylevel (e.g., block 320) falls below the “mid threshold,” the process maycontinue to block 370. Otherwise, if the exposure measurements of thescene during the pre-flash at the low intensity level does not fallbelow the “mid threshold,” the process may continue to block 360.

At block 350, after the processor 110 determines whether the exposuremeasurements of the scene during the pre-flash at the low intensityfalls below the “low threshold,” and if processor 110 determines thatthe exposure measurements of the scene during the pre-flash at the lowintensity falls below the “low threshold,” the processor 110 maycalculate the proper exposure for the scene based on using alow-intensity main flash. The exposure measurements of the scene duringthe pre-flash at the low intensity falling below the “low threshold” mayindicate that the scene may be properly exposed if the image is capturedusing a main flash at a low intensity (e.g., the same light intensity asthe pre-flash in block 320). In such a case, the light illuminated fromthe pre-flash (e.g., at a low intensity) may be used to expose thescene. For example, the illumination intensity of the pre-flash mayalready be at the “low” level of flash intensity, and thus the pre-flashmay remain active when it is determined that the scene only requires a“low” level of flash intensity for proper exposure. Accordingly, byleaving the pre-flash on, power savings can be realized since thepre-flash does not need to be turned off prior to activating the mainflash, as is usually required. Accordingly, an image of the scene maythen be captured by using a main flash at the same low intensity as thepre-flash (e.g., leaving the pre-flash on and not cycling from pre-flashto main flash) in block 380.

At block 360, if the exposure measurements of the scene during thepre-flash at the low intensity level does not fall below the “midthreshold,” the processor 110 may calculate the proper exposure for thescene based on using a full-intensity main flash. The exposuremeasurements of the scene during the pre-flash at the low intensity notfalling below the “mid threshold” may indicate that the scene may not beproperly exposed if the image is captured using a main flash at a low ormid intensity (e.g., full-intensity main flash may be required toproperly expose the scene). Accordingly, the flash may be reconfiguredto full-intensity (block 375) and an image of the scene may then becaptured by using a main flash at full-intensity in block 380.

At block 370, if the exposure measurements of the scene during thepre-flash at the low intensity level does falls below the “midthreshold,” the processor 110 may calculate the proper exposure for thescene based on using a mid-intensity main flash. The exposuremeasurements of the scene during the pre-flash at the low intensityfalling below the “mid threshold” but not falling below the lowthreshold (block 330) may indicate that the scene may not be properlyexposed if the image is captured using a main flash at a low intensity,but may be properly exposed if the image is captured using the mainflash at a mid-intensity. Accordingly, the flash may be reconfigured tomid-intensity (block 375) and an image of the scene may then be capturedby using a main flash at mid-intensity in block 380.

The above described method may allow for different exposure sensitivitythresholds that may be configurable for the different flash intensities(e.g., low, medium, and high flash intensities). For example, if a sceneis determined to have sufficient brightness, a low flash intensity maybe use to capture the scene. This may be done without reconfiguring theflash. In another example, if a scene is far and dark, the flash may bereconfigured to have a medium or high flash intensity based on thepre-flash metering (block 320). Being able to configure the flashintensity (e.g. low, mid, full) versus the flash duration may allow forreduced power consumption of the device 100 since a main flash at fullintensity may not always be required to properly expose the scene. Forexample, using a main flash at mid-intensity may result in ½ the powerconsumption on the device 100 as compared to using the main flash atfull intensity. Further, low and mid-intensity main flash can be useddynamically to improve the power consumption on the device 100 withoutsacrificing image quality.

FIG. 4 is a flowchart 400 illustrating a method for adjusting an imagesensor prior to illuminating a pre-flash. The method begins at block410. At block 420, an autofocus technique may be performed on a scene inorder to obtain an autofocus output an ambient light measurement.

For example, autofocus subsystem 192 may perform an autofocus techniqueon a scene visible through lens 182. The autofocus output obtained fromthe performed autofocus technique may include an autofocus confidencevalue and a focus position within the scene. The autofocus confidencevalue may indicate an amount of confidence in the focus position withinthe scene determined by the autofocus subsystem 192. The focus positionwithin the scene determined by the autofocus subsystem 192 may be usedto obtain a focus position value. The focus position value may bedetermined by the processor 110 by obtaining the value from a look-uptable (LUT) using the focus position as an input and obtaining the focusposition value as an output.

An ambient light measurement may be obtained by the ambient lightmeasurement subsystem 194. The ambient light measurement subsystem 194may interface with the ambient light sensor 170 in order to obtain theambient light measurement. The ambient light measurement may indicate anamount of ambient light present in the scene and may be measured in lux.

At block 430, after performing an autofocus technique on the scene andobtaining the ambient light measurement of the scene, the processor 110may determine whether the obtained autofocus confidence value is aboveor below a threshold confidence value. In some embodiments, theautofocus confidence value may be based on the focus position valueobtained from the LUT. If the processor 110 determines that theautofocus confidence value is above a threshold confidence value (e.g.,there is confidence in the autofocus output from block 420), the methodmay continue to block 440. Otherwise, if the processor 110 determinesthat the autofocus confidence value is below a threshold confidencevalue (e.g., there isn't confidence in the autofocus output from block420), the method may continue to block 450.

At block 440, if the processor 110 determines that the autofocusconfidence value is above a threshold confidence value in block 430, asensitivity of the image sensor 184 may be adjusted based on the focusposition and the ambient light measurement obtained in block 420. Thesensitivity of the image sensor may be defined by an ISO setting andexposure time. The lower the sensitivity the less sensitive the cameramay be to light and the finer the grain. Higher sensitivity maygenerally be used in darker situations to capture more light. Thesensitivity of the image sensor 184 may be adjusted by the processor 110based on the focus position and the ambient light measurement. Adatabase may include different sensitivity settings for differentcombinations of focus position and ambient light measurements. In someembodiments, the processor 110 may execute an algorithm that calculatesthe sensitivity setting for a particular focus position and ambientlight measurement combination.

Thus, the image sensor sensitivity can be adjusted prior to thepre-flash by using the ambient light measurement and a focus positionobtained from autofocus (AF) techniques. The autofocus techniques caninclude laser AF, phase detection AF, contrast AF, or any other AFtechnique. For example, if the AF confidence value is high, the imagesensor sensitivity can be adjusted based on (1) a look-up-table (LUT)defining sensitivities for various focus positions (i.e., distance toobject) in the scene and (2) data from the ambient light sensor. By“pre-adjusting” the image sensor sensitivity prior to the pre-flash, thetime for pre-flash convergence may be reduced and overall flash time forall scenes may also be reduced, resulting in power savings on the deviceand a faster pre-flash process. In some embodiments, the LUT may includeboth AF confidence values and image sensor sensitivities. For example,in a low light scene, if the AF has a confidence value above a thresholdand indicates that the object is close to the device, the image sensorsensitivity may be reduced to avoid the initial saturation and mayassist with faster convergence.

At block 450, if the processor 110 determines that the autofocusconfidence value is below a threshold confidence value in block 430, asensitivity of the image sensor 184 may not be adjusted. That is, thesensitivity of the image sensor may be not be adjusted prior toilluminating the scene with the pre-flash. The image sensor sensitivitymay be adjusted at some point after the pre-flash during normal meteringof the scene.

At block 460, the scene may be illuminated with a pre-flash via lightsource 175. Flash subsystem 196 may interface with light source 175 tooutput the light for the pre-flash. The device 100 may then measure theoutput pre-flash with the ambient light level to calculate the powerneeded in the main flash to properly expose the scene prior to capturingthe image. As mentioned above, by configuring the initial sensitivity ofthe image sensor 184, the pre-flash convergence may be faster andoverall flash snapshot latency by be reduced by ˜100 to 150 ms. This mayalso result in power savings for the device 100.

FIG. 5 illustrates an example of a computing system in which one or moreembodiments may be implemented. A computer system as illustrated in FIG.5 may be incorporated as part of the above described computerizeddevice. For example, computer system 500 can represent some of thecomponents of a television, a computing device, a server, a desktop, aworkstation, a control or interaction system in an automobile, a tablet,a netbook or any other suitable computing system. A computing device maybe any computing device with an image capture device or input sensoryunit and a user output device. An image capture device or input sensoryunit may be a camera device. A user output device may be a display unit.Examples of a computing device include but are not limited to video gameconsoles, tablets, smart phones and any other hand-held devices. FIG. 5provides a schematic illustration of one embodiment of a computer system500 that can perform the methods provided by various other embodiments,as described herein, and/or can function as the host computer system, aremote kiosk/terminal, a point-of-sale device, a telephonic ornavigation or multimedia interface in an automobile, a computing device,a set-top box, a table computer and/or a computer system. FIG. 5 ismeant only to provide a generalized illustration of various components,any or all of which may be utilized as appropriate. FIG. 5, therefore,broadly illustrates how individual system elements may be implemented ina relatively separated or relatively more integrated manner. In someembodiments, elements computer system 500 may be used to implementfunctionality of device 100 in FIG. 1.

The computer system 500 is shown comprising hardware elements that canbe electrically coupled via a bus 502 (or may otherwise be incommunication, as appropriate). The hardware elements may include one ormore processors 504, including without limitation one or moregeneral-purpose processors and/or one or more special-purpose processors(such as digital signal processing chips, graphics accelerationprocessors, and/or the like); one or more input devices 508, which caninclude without limitation one or more cameras, sensors, a mouse, akeyboard, a microphone configured to detect ultrasound or other sounds,and/or the like; and one or more output devices 510, which can includewithout limitation a display unit such as the device used in embodimentsof the invention, a printer and/or the like.

In some implementations of the embodiments of the invention, variousinput devices 508 and output devices 510 may be embedded into interfacessuch as display devices, tables, floors, walls, and window screens.Furthermore, input devices 508 and output devices 510 coupled to theprocessors may form multi-dimensional tracking systems.

The computer system 500 may further include (and/or be in communicationwith) one or more non-transitory storage devices 506, which cancomprise, without limitation, local and/or network accessible storage,and/or can include, without limitation, a disk drive, a drive array, anoptical storage device, a solid-state storage device such as a randomaccess memory (“RAM”) and/or a read-only memory (“ROM”), which can beprogrammable, flash-updateable and/or the like. Such storage devices maybe configured to implement any appropriate data storage, includingwithout limitation, various file systems, database structures, and/orthe like.

The computer system 500 might also include a communications subsystem512, which can include without limitation a modem, a network card(wireless or wired), an infrared device, a wireless device and/orchipset (such as a Bluetooth™ device, an 802.11 device, a Wi-Fi device,a WiMax device, cellular communication facilities, etc.), and/or thelike. The communications subsystem 512 may permit data to be exchangedwith a network, other computer systems, and/or any other devicesdescribed herein. In many embodiments, the computer system 500 willfurther comprise a non-transitory working memory 518, which can includea RAM or ROM device, as described above.

The computer system 500 also can comprise software elements, shown asbeing currently located within the working memory 518, including anoperating system 514, device drivers, executable libraries, and/or othercode, such as one or more application programs 516, which may comprisecomputer programs provided by various embodiments, and/or may bedesigned to implement methods, and/or configure systems, provided byother embodiments, as described herein. Merely by way of example, one ormore procedures described with respect to the method(s) discussed abovemight be implemented as code and/or instructions executable by acomputer (and/or a processor within a computer); in an aspect, then,such code and/or instructions can be used to configure and/or adapt ageneral purpose computer (or other device) to perform one or moreoperations in accordance with the described methods.

A set of these instructions and/or code might be stored on acomputer-readable storage medium, such as the storage device(s) 506described above. In some cases, the storage medium might be incorporatedwithin a computer system, such as computer system 500. In otherembodiments, the storage medium might be separate from a computer system(e.g., a removable medium, such as a compact disc), and/or provided inan installation package, such that the storage medium can be used toprogram, configure and/or adapt a general purpose computer with theinstructions/code stored thereon. These instructions might take the formof executable code, which is executable by the computer system 500and/or might take the form of source and/or installable code, which,upon compilation and/or installation on the computer system 500 (e.g.,using any of a variety of generally available compilers, installationprograms, compression/decompression utilities, etc.) then takes the formof executable code.

Substantial variations may be made in accordance with specificrequirements. For example, customized hardware might also be used,and/or particular elements might be implemented in hardware, software(including portable software, such as applets, etc.), or both. Further,connection to other computing devices such as network input/outputdevices may be employed. In some embodiments, one or more elements ofthe computer system 500 may be omitted or may be implemented separatefrom the illustrated system. For example, the processor 504 and/or otherelements may be implemented separate from the input device 508. In oneembodiment, the processor is configured to receive images from one ormore cameras that are separately implemented. In some embodiments,elements in addition to those illustrated in FIG. 5 may be included inthe computer system 500.

Some embodiments may employ a computer system (such as the computersystem 500) to perform methods in accordance with the disclosure. Forexample, some or all of the procedures of the described methods may beperformed by the computer system 500 in response to processor 504executing one or more sequences of one or more instructions (which mightbe incorporated into the operating system 514 and/or other code, such asan application program 516) contained in the working memory 518. Suchinstructions may be read into the working memory 518 from anothercomputer-readable medium, such as one or more of the storage device(s)506. Merely by way of example, execution of the sequences ofinstructions contained in the working memory 518 might cause theprocessor(s) 504 to perform one or more procedures of the methodsdescribed herein.

The terms “machine-readable medium” and “computer-readable medium,” asused herein, refer to any medium that participates in providing datathat causes a machine to operate in a specific fashion. In someembodiments implemented using the computer system 500, variouscomputer-readable media might be involved in providing instructions/codeto processor(s) 504 for execution and/or might be used to store and/orcarry such instructions/code (e.g., as signals). In manyimplementations, a computer-readable medium is a physical and/ortangible storage medium. Such a medium may take many forms, includingbut not limited to, non-volatile media, volatile media, and transmissionmedia. Non-volatile media include, for example, optical and/or magneticdisks, such as the storage device(s) 506. Volatile media include,without limitation, dynamic memory, such as the working memory 518.Transmission media include, without limitation, coaxial cables, copperwire and fiber optics, including the wires that comprise the bus 502, aswell as the various components of the communications subsystem 512(and/or the media by which the communications subsystem 512 providescommunication with other devices). Hence, transmission media can alsotake the form of waves (including without limitation radio, acousticand/or light waves, such as those generated during radio-wave andinfrared data communications).

Common forms of physical and/or tangible computer-readable mediainclude, for example, a floppy disk, a flexible disk, hard disk,magnetic tape, or any other magnetic medium, a CD-ROM, any other opticalmedium, punchcards, papertape, any other physical medium with patternsof holes, a RAM, a PROM, EPROM, a FLASH-EPROM, any other memory chip orcartridge, a carrier wave as described hereinafter, or any other mediumfrom which a computer can read instructions and/or code.

Various forms of computer-readable media may be involved in carrying oneor more sequences of one or more instructions to the processor(s) 504for execution. Merely by way of example, the instructions may initiallybe carried on a magnetic disk and/or optical disc of a remote computer.A remote computer might load the instructions into its dynamic memoryand send the instructions as signals over a transmission medium to bereceived and/or executed by the computer system 500. These signals,which might be in the form of electromagnetic signals, acoustic signals,optical signals and/or the like, are all examples of carrier waves onwhich instructions can be encoded, in accordance with variousembodiments of the invention.

The communications subsystem 512 (and/or components thereof) generallywill receive the signals, and the bus 502 then might carry the signals(and/or the data, instructions, etc. carried by the signals) to theworking memory 518, from which the processor(s) 504 retrieves andexecutes the instructions. The instructions received by the workingmemory 518 may optionally be stored on a non-transitory storage device506 either before or after execution by the processor(s) 504.

The methods, systems, and devices discussed above are examples. Variousembodiments may omit, substitute, or add various procedures orcomponents as appropriate. For instance, in alternative configurations,the methods described may be performed in an order different from thatdescribed, and/or various stages may be added, omitted, and/or combined.Also, features described with respect to certain embodiments may becombined in various other embodiments. Different aspects and elements ofthe embodiments may be combined in a similar manner. Also, technologyevolves and, thus, many of the elements are examples that do not limitthe scope of the disclosure to those specific examples.

Specific details are given in the description to provide a thoroughunderstanding of the embodiments. However, embodiments may be practicedwithout these specific details. For example, well-known circuits,processes, algorithms, structures, and techniques have been shownwithout unnecessary detail in order to avoid obscuring the embodiments.This description provides example embodiments only, and is not intendedto limit the scope, applicability, or configuration of the invention.Rather, the preceding description of the embodiments will provide thoseskilled in the art with an enabling description for implementingembodiments of the invention. Various changes may be made in thefunction and arrangement of elements without departing from the spiritand scope of the invention.

Also, some embodiments are described as processes depicted as flowdiagrams or block diagrams. Although each may describe the operations asa sequential process, many of the operations can be performed inparallel or concurrently. In addition, the order of the operations maybe rearranged. A process may have additional steps not included in thefigures. Furthermore, embodiments of the methods may be implemented byhardware, software, firmware, middleware, microcode, hardwaredescription languages, or any combination thereof. When implemented insoftware, firmware, middleware, or microcode, the program code or codesegments to perform the associated tasks may be stored in acomputer-readable medium such as a storage medium. Processors mayperform the associated tasks. Thus, in the description above, functionsor methods that are described as being performed by the computer systemmay be performed by a processor—for example, the processor504—configured to perform the functions or methods. Further, suchfunctions or methods may be performed by a processor executinginstructions stored on one or more computer readable media.

Having described several embodiments, various modifications, alternativeconstructions, and equivalents may be used without departing from thespirit of the disclosure. For example, the above elements may merely bea component of a larger system, wherein other rules may take precedenceover or otherwise modify the application of the invention. Also, anumber of steps may be undertaken before, during, or after the aboveelements are considered. Accordingly, the above description does notlimit the scope of the disclosure.

Various examples have been described. These and other examples arewithin the scope of the following claims.

What is claimed is:
 1. A method, comprising: performing an autofocustechnique on a scene to obtain an autofocus output; receiving light fromthe scene; obtaining an ambient light measurement of the scene based onthe received light; adjusting a sensitivity of an image sensor based atleast in part on the autofocus output and the ambient light measurement,wherein the sensitivity is adjusted to avoid saturation of the imagesensor when illuminating the scene using a pre-flash at a firstintensity; after adjusting the sensitivity of the image sensor,illuminating the scene using the pre-flash at the first intensity;determining a second intensity to use for a main flash, wherein thesecond intensity is greater than or equal to the first intensity;illuminating the scene using the main flash at the second intensity; andcapturing, using the image sensor, the scene as illuminated by the mainflash.
 2. The method of claim 1, wherein the autofocus output comprisesan autofocus confidence value and a focus position pertaining to thescene.
 3. The method of claim 2, further comprising: determining whetherthe autofocus confidence value is above a threshold confidence value;and obtaining a focus position value from a look-up table (LUT), basedat least in part on the focus position.
 4. The method of claim 2,further comprising: determining whether the autofocus confidence valueis below a threshold confidence value; and in response to determiningthat the autofocus confidence value is below the threshold confidencevalue, not performing the adjusting step.
 5. The method of claim 1,wherein the autofocus output comprises a focus position pertaining tothe scene.
 6. The method of claim 1, wherein the image sensor is housedwithin a camera device.
 7. The method of claim 1, wherein the autofocustechnique comprises at least one of the following autofocus techniques:laser autofocus, phase detection autofocus, or contrast autofocus.
 8. Asystem, comprising: a lens; a light source; an image sensor coupled to aprocessor; an ambient light sensor coupled to the processor andconfigured to receive light from a scene, wherein the processor isconfigured to: perform an autofocus technique on the scene to obtain anautofocus output; obtain an ambient light measurement of the scene basedon the received light; adjust a sensitivity of the image sensor based atleast in part on the autofocus output and the ambient light measurement,wherein the processor adjusts the sensitivity to avoid saturation of theimage sensor when illuminating the scene using a pre-flash at a firstintensity; after adjusting the sensitivity of the image sensor,illuminate the scene using the light source to produce the pre-flash atthe first intensity; determine a second intensity to use for a mainflash, wherein the second intensity is greater than or equal to thefirst intensity; illuminate the scene using the main flash at the secondintensity; and capture, using the image sensor, the scene as illuminatedby the main flash.
 9. The system of claim 8, wherein the autofocusoutput comprises an autofocus confidence value and a focus positionpertaining to the scene.
 10. The system of claim 9, wherein theprocessor is further configured to: determine whether the autofocusconfidence value is above a threshold confidence value; and obtain afocus position value from a look-up table (LUT), based at least in parton the focus position.
 11. The system of claim 9, wherein the processoris further configured to: determine whether the autofocus confidencevalue is below a threshold confidence value; and in response todetermining that the autofocus confidence value is below the thresholdconfidence value, not perform the adjusting step.
 12. The system ofclaim 8, wherein the autofocus output comprises a focus positionpertaining to the scene.
 13. The system of claim 8, wherein the systemis a camera device.
 14. The system of claim 8, wherein the autofocustechnique comprises at least one of the following autofocus techniques:laser autofocus, phase detection autofocus, or contrast autofocus. 15.An apparatus, comprising: means for performing an autofocus technique ona scene to obtain an autofocus output; means for receiving light fromthe scene; means for obtaining an ambient light measurement of the scenebased on the received light; means for adjusting a sensitivity of animage sensor based at least in part on the autofocus output and theambient light measurement, wherein the sensitivity is adjusted to avoidsaturation of the image sensor when illuminating the scene using apre-flash at a first intensity; means for, after adjusting thesensitivity of the image sensor, illuminating the scene using thepre-flash at the first intensity; means for determining a secondintensity to use for a main flash, wherein the second intensity isgreater than or equal to the first intensity; means for illuminating thescene using the main flash at the second intensity; and means forcapturing, using the image sensor, the scene as illuminated by the mainflash.
 16. The apparatus of claim 15, wherein the autofocus outputcomprises an autofocus confidence value and a focus position pertainingto the scene.
 17. The apparatus of claim 16, further comprising: meansfor determining whether the autofocus confidence value is above athreshold confidence value; and in response to determining that theautofocus confidence value is below the threshold confidence value,means for not perform the adjusting step.
 18. The apparatus of claim 15,wherein the autofocus output comprises a focus position pertaining tothe scene.
 19. The apparatus of claim 15, wherein the autofocustechnique comprises at least one of the following autofocus techniques:laser autofocus, phase detection autofocus, or contrast autofocus. 20.One or more non-transitory computer-readable media storingcomputer-executable instructions that, when executed, cause one or morecomputing devices to: perform an autofocus technique on a scene toobtain an autofocus output; receive light from the scene; obtain anambient light measurement of the scene based on the received light;adjust a sensitivity of an image sensor based at least in part on theautofocus output and the ambient light measurement, wherein thesensitivity is adjusted to avoid saturation of the image sensor whenilluminating the scene using a pre-flash at a first intensity; afteradjusting the sensitivity of the image sensor, illuminate the sceneusing the pre-flash at the first intensity; determine a second intensityto use for a main flash, wherein the second intensity is greater than orequal to the first intensity; illuminate the scene using the main flashat the second intensity; and capture, using the image sensor, the sceneas illuminated by the main flash.
 21. The non-transitorycomputer-readable media of claim 20, wherein the autofocus outputcomprises an autofocus confidence value and a focus position pertainingto the scene.
 22. The non-transitory computer-readable media of claim21, wherein the instructions that, when executed, further cause the oneor more computing devices to: determine whether the autofocus confidencevalue is above a threshold confidence value; and obtain a focus positionvalue from a look-up table (LUT), based at least in part on the focusposition.
 23. The non-transitory computer-readable media of claim 21,wherein the instructions that, when executed, further cause the one ormore computing devices to: determine whether the autofocus confidencevalue is below a threshold confidence value; and in response todetermining that the autofocus confidence value is below the thresholdconfidence value, not perform the adjusting step.
 24. The non-transitorycomputer-readable media of claim 20, wherein the autofocus outputcomprises a focus position pertaining to the scene.
 25. Thenon-transitory computer-readable media of claim 20, wherein image sensoris housed within a camera device.
 26. The non-transitorycomputer-readable media of claim 20, wherein the autofocus techniquecomprises at least one of the following autofocus techniques: laserautofocus, phase detection autofocus, or contrast autofocus.
 27. Themethod of claim 1, further comprising: performing an exposuremeasurement of the scene as illuminated by the pre-flash, wherein thesecond intensity is determined based on the exposure measurement. 28.The method of claim 27, further comprising: calculating, based on thedetermined second intensity, an exposure to use for the main flash.